package main

import "fmt"

func main() {
	// //1. 给数组赋值
	// var nums [5]int32
	// for i := 0; i < len(nums); i++ {
	// 	fmt.Println("请输入数字")
	// 	fmt.Scanln(&nums[i])
	// }

	// //2.利用for-range遍历数组
	// for index, value := range nums {
	// 	fmt.Println("索引：", index, "值：", value)
	// }

	//3.可以利用for-range遍历字符串中的字符，且自动按照占用字节进行遍历，index将是跳过的字节数
	//因此可以遍历中文
	var str string = "abc中国"
	for index, value := range str {
		// fmt.Println("索引：", index, "utf-8值：", value)
		fmt.Printf("索引： %v 字符值：%c \n", index, value)
	}

	//4.初始化数组的四种方式：初始化=声明+赋值
	//1）最后一个是空字符串
	var numArr [3]string = [3]string{"你", "好"}
	for _, v := range numArr {
		fmt.Println(v)
	}
	//2） 类型推导
	var numArr2 = [3]int32{1, 2, 3}
	for _, v := range numArr2 {
		fmt.Println(v)
	}
	//3）省略var
	numArr3 := [3]int32{4, 5, 6}
	for _, v := range numArr3 {
		fmt.Println(v)
	}
	//4） 省略长度，编译时确定
	numArr4 := [...]int32{9, 8, 7}
	for _, v := range numArr4 {
		fmt.Println(v)
	}

	//5) 指定数组索引方式初始化
	numArr5 := [...]int32{3: 10, 2: 9, 1: 8, 0: 7}
	for index, val := range numArr5 {
		fmt.Println("index=", index, " val=", val)
	}
}
